import java.util.Scanner;

/**
 * Created with IDEA
 * author:ju bai
 * Date:2021/5/8
 * Time:19:10
 **/
public class Main1 {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            int n = sc.nextInt();
            System.out.println(getTotalCount(n));
            System.out.println(getTotalCount2(n));
        }
    }

    /**
     * 每日一题-统计每个月兔子的个数
     * 迭代写法
     * @param MonthCount 第几月
     * @return 兔子个数
     */
    private static int getTotalCount2(int MonthCount) {
        if(MonthCount < 3){
            return 1;
        }
        //有两种兔子
        //1.上个月生的兔子
        //2.这个月有能力生的兔子->每个兔子生一个
        int first = 1;//表示上月生的兔子
        int second = 1;//表示这个月有能力生的兔子
        int count = 0;//记录兔子总数

        //从第三个月起
        for (int i = 2; i < MonthCount; i++) {
            count = first + second;//上月生的兔子+这个月有能力生的兔子
            //更新上月生的兔子、这个月有能力生的兔子
            first = second;//这个月有能力生的兔子生出来的兔子，就是相对下个月来说，“上月生的兔子”
            second = count;//所有兔子这个月都有能力生
        }
        return count;
    }

    /**
     * 每日一题-统计每个月兔子的个数
     * 递归写法
     * @param MonthCount  第几月
     * @return 兔子个数
     */
    public static int getTotalCount(int MonthCount) {
        if(MonthCount == 1||MonthCount == 2){
            return 1;
        }
        return getTotalCount(MonthCount-1)+getTotalCount(MonthCount-2);
    }


}
